sgdk
|
Z80 control. More...
Go to the source code of this file.
Defines | |
#define | Z80_HALT_PORT 0xA11100 |
#define | Z80_RESET_PORT 0xA11200 |
#define | Z80_RAM_START 0xA00000 |
#define | Z80_RAM_END 0xA01FFF |
#define | Z80_RAM Z80_RAM_START |
#define | Z80_RAM_LEN ((Z80_RAM_END - Z80_RAM_START) + 1) |
#define | Z80_YM2612 0xA04000 |
#define | Z80_BANK_REGISTER 0xA06000 |
#define | Z80_DRV_COMMAND 0xA00100 |
#define | Z80_DRV_STATUS 0xA00102 |
#define | Z80_DRV_PARAMS 0xA00104 |
#define | Z80_DRV_COM_PLAY_SFT 0 |
#define | Z80_DRV_COM_STOP_SFT 4 |
#define | Z80_DRV_STAT_PLAYING_SFT 0 |
#define | Z80_DRV_STAT_READY_SFT 7 |
#define | Z80_DRV_COM_PLAY (1 << Z80_DRV_COM_PLAY_SFT) |
#define | Z80_DRV_COM_STOP (1 << Z80_DRV_COM_STOP_SFT) |
#define | Z80_DRV_STAT_PLAYING (1 << Z80_DRV_STAT_PLAYING_SFT) |
#define | Z80_DRV_STAT_READY (1 << Z80_DRV_STAT_READY_SFT) |
#define | Z80_DRV_CH0_SFT 0 |
#define | Z80_DRV_CH1_SFT 1 |
#define | Z80_DRV_CH2_SFT 2 |
#define | Z80_DRV_CH3_SFT 3 |
#define | Z80_DRV_CH0 (1 << Z80_DRV_CH0_SFT) |
#define | Z80_DRV_CH1 (1 << Z80_DRV_CH1_SFT) |
#define | Z80_DRV_CH2 (1 << Z80_DRV_CH2_SFT) |
#define | Z80_DRV_CH3 (1 << Z80_DRV_CH3_SFT) |
#define | Z80_DRIVER_NULL 0 |
#define | Z80_DRIVER_PCM 1 |
#define | Z80_DRIVER_2ADPCM 2 |
#define | Z80_DRIVER_4PCM_ENV 4 |
#define | Z80_DRIVER_MVS 5 |
#define | Z80_DRIVER_TFM 6 |
#define | Z80_DRIVER_VGM 7 |
#define | Z80_DRIVER_XGM 8 |
#define | Z80_DRIVER_CUSTOM -1 |
#define | Z80_DRIVER_DEFAULT Z80_DRIVER_PCM |
Functions | |
void | Z80_init () |
Initialize Z80 sub system. | |
u16 | Z80_isBusTaken () |
Return Z80 BUS taken state. | |
void | Z80_requestBus (u16 wait) |
Request Z80 BUS. | |
void | Z80_releaseBus () |
Release Z80 BUS. | |
void | Z80_startReset () |
Start Z80 reset. | |
void | Z80_endReset () |
End Z80 reset. | |
void | Z80_setBank (const u16 bank) |
Set Z80 memory bank. | |
u8 | Z80_read (const u16 addr) |
Read Z80 memory (Z80_RAM). | |
void | Z80_write (const u16 addr, const u8 value) |
Write to Z80 memory (Z80_RAM). | |
void | Z80_clear (const u16 dest, const u16 size, const u16 resetz80) |
Clear Z80 memory. | |
void | Z80_upload (const u16 dest, const u8 *data, const u16 size, const u16 resetz80) |
Upload data in Z80 memory. | |
void | Z80_download (const u16 from, u8 *dest, const u16 size) |
Read data from Z80 memory. | |
u16 | Z80_getLoadedDriver () |
Return currently loaded Z80 driver. | |
void | Z80_unloadDriver () |
Unload Z80 driver (actually clear Z80 ram). | |
void | Z80_loadDriver (const u16 driver, const u16 waitReady) |
Load a Z80 driver. | |
void | Z80_loadCustomDriver (const u8 *drv, u16 size) |
Load a custom Z80 driver. | |
u16 | Z80_isDriverReady () |
Return driver ready state (only for non custom driver). |
Z80 control.
This unit provides Z80 access from the YM2612 :
#define Z80_BANK_REGISTER 0xA06000 |
Z80 Bank register address.
#define Z80_DRIVER_2ADPCM 2 |
2 channels PCM sample player Z80 driver.
It can mix 2 samples (4 bit PCM) at a fixed 22 Khz rate.
#define Z80_DRIVER_4PCM_ENV 4 |
4 channels sample player Z80 driver with envelop control.
It can mix 4 samples (8 bit signed) at a fixed 16 Khz rate
and handle volume (16 levels) for each channel.
#define Z80_DRIVER_CUSTOM -1 |
CUSTOM Z80 driver.
#define Z80_DRIVER_MVS 5 |
MVS tracker Z80 driver (updated to last version with PCM and PSG support).
#define Z80_DRIVER_NULL 0 |
NULL Z80 driver.
#define Z80_DRIVER_PCM 1 |
Variable rate sample player Z80 driver.
It can play a sample (8 bit signed) from 8 Khz up to 32 Khz rate.
#define Z80_DRIVER_TFM 6 |
TFM tracker Z80 driver.
#define Z80_DRIVER_VGM 7 |
VGM Z80 driver.
It supports 1 PCM channel at a fixed 8 Khz and allows to play SFX through the named PCM channel.
Written by Sigflup and kubilus1.
#define Z80_DRIVER_XGM 8 |
eXtended VGM music player driver.
This driver takes VGM (or XGM) file as input to play music.
It supports 4 PCM channels at a fixed 14 Khz and allows to play SFX through PCM with 16 level of priority.
The driver is designed to avoid DMA contention when possible (depending CPU load).
#define Z80_DRV_CH0 (1 << Z80_DRV_CH0_SFT) |
Z80 default driver channel 0 id.
#define Z80_DRV_CH1 (1 << Z80_DRV_CH1_SFT) |
Z80 default driver channel 1 id.
#define Z80_DRV_CH2 (1 << Z80_DRV_CH2_SFT) |
Z80 default driver channel 2 id.
#define Z80_DRV_CH3 (1 << Z80_DRV_CH3_SFT) |
Z80 default driver channel 3 id.
#define Z80_DRV_COM_PLAY (1 << Z80_DRV_COM_PLAY_SFT) |
Z80 default driver play command.
#define Z80_DRV_COM_STOP (1 << Z80_DRV_COM_STOP_SFT) |
Z80 default driver stop command.
#define Z80_DRV_COMMAND 0xA00100 |
Z80 default driver command address.
#define Z80_DRV_PARAMS 0xA00104 |
Z80 default driver parameters address.
#define Z80_DRV_STAT_PLAYING (1 << Z80_DRV_STAT_PLAYING_SFT) |
Z80 default driver play status.
#define Z80_DRV_STAT_READY (1 << Z80_DRV_STAT_READY_SFT) |
Z80 default driver ready status.
#define Z80_DRV_STATUS 0xA00102 |
Z80 default driver status address.
#define Z80_RAM Z80_RAM_START |
Z80 RAM address.
#define Z80_RAM_END 0xA01FFF |
Z80 RAM end address.
#define Z80_RAM_LEN ((Z80_RAM_END - Z80_RAM_START) + 1) |
Z80 RAM length in byte.
#define Z80_RAM_START 0xA00000 |
Z80 RAM start address.
#define Z80_YM2612 0xA04000 |
Z80 YM2612 port address.
void Z80_clear | ( | const u16 | dest, |
const u16 | size, | ||
const u16 | resetz80 | ||
) |
Clear Z80 memory.
dest | Destination address (Z80 memory). |
size | Size in byte of region to clear. |
resetz80 | Reset Z80 if set to TRUE. |
void Z80_download | ( | const u16 | from, |
u8 * | dest, | ||
const u16 | size | ||
) |
Read data from Z80 memory.
from | Source address (Z80 memory). |
dest | Destination where to write data. |
size | Size in byte of data to read. |
u16 Z80_getLoadedDriver | ( | ) |
Return currently loaded Z80 driver.
Possible returned values are:
void Z80_init | ( | ) |
Initialize Z80 sub system.
Request Z80 BUS and reset bank number.
void Z80_loadCustomDriver | ( | const u8 * | drv, |
u16 | size | ||
) |
Load a custom Z80 driver.
drv | Pointer to the driver binary to load. |
size | Size (in bytes) of the driver binary. |
void Z80_loadDriver | ( | const u16 | driver, |
const u16 | waitReady | ||
) |
Load a Z80 driver.
driver | Driver to load, possible values are: |
waitReady | Wait for driver to be ready. |
u8 Z80_read | ( | const u16 | addr | ) |
Read Z80 memory (Z80_RAM).
addr | Address to read (relative to start of Z80_RAM). |
You need to request Z80 BUS to access Z80 memory.
void Z80_requestBus | ( | u16 | wait | ) |
Request Z80 BUS.
wait | Wait for BUS request operation to complete. |
void Z80_setBank | ( | const u16 | bank | ) |
Set Z80 memory bank.
bank | Bank number to set (0x000-0x1FF) |
void Z80_upload | ( | const u16 | dest, |
const u8 * | data, | ||
const u16 | size, | ||
const u16 | resetz80 | ||
) |
Upload data in Z80 memory.
dest | Destination address (Z80 memory). |
data | Data to upload. |
size | Size in byte of data to upload. |
resetz80 | Reset Z80 if set to TRUE. |
void Z80_write | ( | const u16 | addr, |
const u8 | value | ||
) |
Write to Z80 memory (Z80_RAM).
addr | Address to write (relative to start of Z80_RAM). |
value | Value to write. |
You need to request Z80 BUS to access Z80 memory.